﻿using Renci.Data.Interop.OpenGIS.Gml_32;
using Renci.Data.Interop.OpenGIS.SensorML_101;
using Renci.Data.Interop.OpenGIS.Xlink;

namespace Renci.Data.Interop.OpenGIS.Om_101
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/om/1.0")]
    public partial class ProcessPropertyType : IAssociationAttributeGroup
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Process", typeof(ProcessType))]
        //[System.Xml.Serialization.XmlElementAttribute("_Process", typeof(AbstractProcessType), Namespace = "http://www.opengis.net/sensorML/1.0.1")]
        [System.Xml.Serialization.XmlElementAttribute("ObservationProcess", typeof(ObservationProcessType), Namespace = "http://www.opengis.net/om/1.0")]
        [System.Xml.Serialization.XmlElementAttribute("CalculationProcess", typeof(Renci.Data.Interop.OpenGIS.Om_10.CalculationProcessType), Namespace = "http://www.opengis.net/om/1.0")]
        [System.Xml.Serialization.XmlElementAttribute("ProcessModel", typeof(ProcessModelType), Namespace = "http://www.opengis.net/sensorML/1.0.1")]
        [System.Xml.Serialization.XmlElementAttribute("ProcessChain", typeof(ProcessChainType), Namespace = "http://www.opengis.net/sensorML/1.0.1")]
        [System.Xml.Serialization.XmlElementAttribute("DataSource", typeof(DataSourceType), Namespace = "http://www.opengis.net/sensorML/1.0.1")]
        [System.Xml.Serialization.XmlElementAttribute("Component", typeof(ComponentType), Namespace = "http://www.opengis.net/sensorML/1.0.1")]
        [System.Xml.Serialization.XmlElementAttribute("System", typeof(SystemType), Namespace = "http://www.opengis.net/sensorML/1.0.1")]
        [System.Xml.Serialization.XmlElementAttribute("ComponentArray", typeof(ComponentArrayType), Namespace = "http://www.opengis.net/sensorML/1.0.1")]
        public object Item { get; set; }

        #region IAssociationAttributeGroup Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("nilReason", Namespace = "http://www.opengis.net/gml/3.2")]
        public string NilReason { get; set; }

        /// <summary>
        /// Gets or sets a reference to an XML Schema fragment that specifies the content model of the propertys value. This is in conformance with the XML Schema Section 4.14 Referencing Schemas from Elsewhere.
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute("remoteSchema", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.opengis.net/gml/3.2", DataType = "anyURI")]
        public string RemoteSchema { get; set; }

        #endregion

        #region ISimpleLink Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("type", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink")]
        public string Type { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("href", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink", DataType = "anyURI")]
        public string Href { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("role", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink", DataType = "anyURI")]
        public string Role { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("arcrole", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink", DataType = "anyURI")]
        public string ArcRole { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("title", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink")]
        public string Title { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("show", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink")]
        public MetadataTypeShow Show { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ShowSpecified { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("actuate", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/1999/xlink")]
        public MetadataTypeActuate Actuate { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActuateSpecified { get; set; }

        #endregion   
    }
}
